草庐IT

Java BufferedImage 内存消耗

全部标签

apache-spark - Spark 独立设置中的内存使用情况

我有一个spark设置,其中有一个worker有6个核心。现在我向工作人员广播一个对象x。我有三个问题-对于mapreduce作业,将生成我的objx的6个副本还是x的单个副本将由所有核心共享?x的生命周期是什么,即;它什么时候会被摧毁。我问是因为这个对象x占用了大量内存。如果我从文件中读取对象,是否有其他方法可以在所有6个内核之间共享该对象。 最佳答案 广播数据在每个执行器(java进程)中传输和存储一次,而不是每个内核一次。换句话说,如果您只有一个节点,并且将spark.executor.instances设置为2,并将spar

apache-spark - Apache Yarn - 分配比物理内存或 RAM 更多的内存

我正在考虑将yarn.nodemanager.resource.memory-mb更改为高于我机器上可用RAM的值。快速搜索发现没有多少人这样做。许多在yarn上长期存在的应用程序,必然会有一个jvm堆空间分配,其中一些内存被更频繁地使用,而另一些则很少被使用。在这种情况下,对于此类应用程序来说,将一些不常用的内存部分交换到磁盘并将可用的物理内存重新分配给需要它的其他应用程序将是非常有意义的。鉴于上述背景,有人可以证实我的推理或提供另一种观点吗?另外,能否请您说明参数yarn.nodemanager.vmem-pmem-ratio在上述情况下的工作原理? 最

hadoop - Mapreduce 作业消耗更多资源和更改队列

我有一个运行超过1.7亿条记录的MapReduce作业。这导致消耗了98%的队列资源和89%的集群资源。管理团队建议他们创建配置有限的新队列,我应该将我的工作推送到该队列中。这里有问题,我有:-1-我怎样才能将我的mapreduce作业(“hadoopjar”)推送到新队列并进行最少的更改?2-由于新创建的队列资源有限,如果队列容量已满怎么办?它会导致长期运行或作业失败吗?3-是否有任何其他最佳方法来防止作业消耗所有资源,如果作业运行时间稍长一点,我们就可以接受。请指教。任何帮助都会很棒。 最佳答案 如果您正在使用容量/公平份额调度

hadoop - Namenode 中符号链接(symbolic link)的内存影响

Hadoop2.0中使用FileContext对象支持符号链接(symboliclink)createSymlinks()方法。我正在考虑在一个程序中大量使用符号链接(symboliclink),该程序将上个月的所有文件都放在Hadoop文件(HAR)中,但我想知道使用符号链接(symboliclink)是否会消耗Namenode内存,类似于在HDFS中拥有小文件,这会破坏目的将这些放在HAR中,让我找到小文件的原始问题。此外,我想使用符号链接(symboliclink)的原因是当文件被HAR时(并因此移动)我不必使用新文件位置更新HBase。NameNode中符号链接(symboli

华为OD机试 - 堆内存申请(Java & JS & Python & C)

在线OJ刷题题目详情-堆内存申请-Hydro题目描述有一个总空间为100字节的堆,现要从中新申请一块内存,内存分配原则为:优先紧接着前一块已使用内存,分配空间足够且最接近申请大小的空闲内存。输入描述第1行是1个整数,表示期望申请的内存字节数第2到第N行是用空格分割的两个整数,表示当前已分配的内存的情况,每一行表示一块已分配的连续内存空间,每行的第1和第2个整数分别表示偏移地址和内存块大小,如:0132表示0偏移地址开始的1个字节和3偏移地址开始的2个字节已被分配,其余内存空闲。输出描述若申请成功,输出申请到内存的偏移;若申请失败,输出-1。备注若输入信息不合法或无效,则申请失败若没有足够的空间

java - 如何在 Java 内存密集型应用程序中避免 OutOfMemory 异常?

我们开发了一个java应用程序,其主要目标是读取文件(输入文件)、处理它并将其转换为一组输出文件。(我已经对我们的解决方案进行了一般性描述,以避免不相关的细节)。当输入文件为4GB,内存设置为-Xms4096m-Xmx16384m,32GBRAM时,此程序运行良好现在我们需要使用大小为130GB的输入文件运行我们的应用程序。我们使用具有250GBRAM且内存设置为-Xms40g-Xmx200g(也尝试了其他几种变体)的linux机器来运行应用程序并遇到OutOfMemory异常。在我们项目的这个阶段,很难考虑重新设计代码以适应hadoop(或其他大型数据处理框架),而且我们目前可以承受

performance - 为什么 hadoop map 任务上的更多内存会使 mapreduce 作业变慢?

我想问一下。为什么如果我在mapreduce.map/reduce.memory.mb和mapreduce.map/reduce.java.opts中将mapred-site.xml配置为比默认值更大的值会使我的工作变慢?但是如果我将它配置得太低,那么我会任务失败。而且我认为在这种情况下,我在hadoop上的内存配置是没有必要的......你能给我解释一下吗? 最佳答案 当您增加mapreduce.map/reduce.memory.mb和mapreduce.map/reduce.java.opts的值时,您的环境中可能会发生什么>

scala - Spark 内存限制超出问题

我有一份在spark上运行的工作,它是使用sparkRDD在scalaim中编写的。由于昂贵的分组操作我得到这个错误:容器因超出内存限制而被YARN终止。使用了22.4GB的22GB物理内存。考虑提升spark.yarn.executor.memoryOverhead。我增加了头顶的内存,但我得到了同样的结果。我使用10台r4.xlarge机器。我尝试使用r4.2xlarge甚至r4.4xlarge,但也出现同样的错误。我正在测试的数据是5GB压缩数据(将近50个解压缩数据和近600万条记录)。一些配置:spark.executor.memory:20480Mspark.driver.

将内存文件添加到Clang CompilerInstance

我正在尝试与Clang创建一个工具,并想知道是否可以将InclageFile从内存注入CompilerInstance预处理器。我的目标是添加一个#include对于我的文件,并将此文件与适当的内容一起动态包含。所以我有一个ASTFrontendAction像这样:classMyFrontendAction:publicASTFrontendAction{virtualboolBeginInvocation(CompilerInstance&ci)override{autobuffer=llvm::MemoryBuffer::getMemBufferCopy(...);ci.createFil

Java过程内存使用量不断增加,Java本地内存跟踪显示“内部”消耗大量内存

Java1.8.0_131+WindowsServer2012R2。'-xmx=9000m'。但是Windows任务管理器显示Java进程使用了​​超过14GB的内存。NMT显示“内部”消耗超过4.5GB的内存。为什么会发生这种情况?我知道为本机内存定义空格不是Java功能。但是有什么方法可以限制“内部”内存?总计:保留=15782485KB,犯罪=14653869KB-JAVA堆(保留=9216000KB,承诺=9216000KB)(MMAP:保留=9216000KB,承诺=9216000KB)class(保留=1277553KB,犯罪=260193KB)(#37738)(malloc=11